/* #ifndef __STACK__
    #define __STACK__ 
        #include "include.h"
        //-----------------顺序栈----------------
        //栈就是由自定义结构的数组加两个指针组成，但是它更重要的是体现了一种封装的思想，
        //将原本可以自由访问的数组封装为只能进行栈的逻辑操作，如出栈、入栈、清空栈、销毁栈、遍历栈。
        typedef struct 
        {
            int x;
            int y;
        }Pos;
        typedef Pos SElemType;

        #define MAXSIZE 100  //栈大小
        typedef struct {
            SElemType *base;  //栈底指针 (对应栈元素类型的指针)
            SElemType *top;   //栈顶指针(对应栈元素类型的指针)
            int stacksize;    //栈大小
        }SqStack;


        typedef int Status;
        #define OK 1;
        #define ERROR 0;

        //-------------栈的相关操作-----------------
        //初始化栈
        Status initStack(SqStack *s);
        //压栈
        Status push(SqStack *s, SElemType e);
        //出栈
        SElemType pop(SqStack *s);
        //清空栈
        Status clearStack(SqStack *s);
        //摧毁栈
        void destroyStack(SqStack *s);
        //遍历栈
        Status stackTravel(SqStack *s);
#endif // __STACK__

 */




/* //寻找迷宫路径
void findWay(Maze *maze,SqStack *s)
{
    //首先遍历找出起始点和终点并保存下来
    Pos start,end;
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            if (maze->square[i][j] == 's')
            {   //起点压入栈内
                start.x = i;
                start.y = j;
                push(s, start);
            }
            else if (maze->square[i][j] == 'e')
            {   //出口
                end.x = i;
                end.y = j;
            }
        }
    }
    //寻找路径
    Pos Current = start;
    //直到找到出口才结束
    while ( s->top->x != end.x || s->top->y != end.y)
    {
        //获得下一步坐标
        Pos Next = GetNext(Current, *maze);   // 寻找下一步 （顺序：右下左）  上：之前经过的路径current
        if (Next.x != Current.x || Next.y != Current.y) //不是死胡同
        {
            //前进
            maze->square[Next.x][Next.y] = 'p';       //标记一下，避免走重复的路
            push(s, Next);
            Current = Next;
        }
        //如果所有放向都走不通（即返回的点是传入的点），则将其标为“@”，出栈到上一个点，继续判断
        else //死胡同，并将当前标记为1
        {
            maze->square[Current.x][Current.y] = '@'; //标记一下，死胡同
            pop(s);
            Current = *(s->top);
        }
    }
    maze->square[end.x][end.y] = 'e';
}

//判断返回下一步路径（顺序：右下左上），传入所处位置，从右边开始判断是否又通路或者出口，有就返回哪个方向上的点
//--------------------------------------0才通，@为障碍--------------------------------------
Pos GetNext(Pos p,Maze maze) 
{
    Pos tempP = p;
    if (maze.square[tempP.x][tempP.y+1] == 0 || maze.square[tempP.x][tempP.y + 1] == 'e')
    {
        tempP.y++;
    }
    else if(maze.square[tempP.x+1][tempP.y] == 0 || maze.square[tempP.x +1][tempP.y] == 'e')
    {
        tempP.x++;
    }
    else if (maze.square[tempP.x][tempP.y - 1] == 0 || maze.square[tempP.x][tempP.y - 1] == 'e')
    {
        tempP.y--;
    }
    else if (maze.square[tempP.x - 1][tempP.y] == 0 || maze.square[tempP.x - 1][tempP.y] == 'e')
    {
        tempP.x--;
    }
    return tempP;
} */
